package com.jy.wms.dao;

import com.jy.wms.common.base.BaseDao;
import com.jy.wms.pojo.WmsEstimatedArrivalOrderDetailed;
import com.jy.wms.pojo.WmsQualityTesting;
import com.jy.wms.pojo.WmsQualityTestingDetailed;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
* @ClassName: WmsEstimatedArrivalOrderDetailedMapper.java
* @Description: TODO(这里用一句话描述这个类的作用)
* @Author Liyi
* @Date Wed Sep 27 09:49:11 CST 2017
*/
public interface WmsEstimatedArrivalOrderDetailedMapper extends BaseDao<WmsEstimatedArrivalOrderDetailed> {

/**
 * 插入一条记录
 * @param entity 实体对象
 * @return int
 */
 public Integer baseInsert(@Param("WmsEstimatedArrivalOrderDetailed") WmsEstimatedArrivalOrderDetailed entity);

/**
 * 插入一条记录（匹配有值的字段）
 * @param entity 实体对象
 * @return int
 */
public Integer baseInsertSelective(@Param("WmsEstimatedArrivalOrderDetailed") WmsEstimatedArrivalOrderDetailed entity);

 /**
  * 批量 插入多条记录
  * @param list 实体对象
  * @return int
  */
 public Integer baseInsertAll(@Param("list") List<WmsEstimatedArrivalOrderDetailed> list);


/**
 * 删除（根据主键ID删除）
 * @param id 主键
 * @return int
 */
public Integer baseDeleteByPrimaryKey(@Param("id") String id);

/**
 * 删除（根据ID 批量删除）
 * @param idList 主键ID列表
 * @return int
 */
 public Integer baseDeleteBathPrimaryKeys(@Param("list") List<String> idList);


 /**
 * 分页查询
 * @param entity 实体
 * @return List<WmsEstimatedArrivalOrderDetailed>
 */
 public List<WmsEstimatedArrivalOrderDetailed>  baseSelectPage(@Param("WmsEstimatedArrivalOrderDetailed") WmsEstimatedArrivalOrderDetailed entity);

 /**
  * 获取打印ASN订单明细需要的信息
  * @param
  * @return
  */
 public List<Map<String,Object>> print(@Param("ssyqdid") String ssyqdid);

 /**
 * 查询（根据主键ID查询）
 * @param id 主键ID
 * @return User
 */
 public WmsEstimatedArrivalOrderDetailed  baseSelectByPrimaryKey(@Param("id") String id);

 /**
  * 查询（根据ssyqdid所属预期到货单ID查询）
  * @param ssyqdid  所属预期到货单ID
  * @return
  */
 public List<WmsEstimatedArrivalOrderDetailed> getBySsyqdid(@Param("ssyqdid") String ssyqdid);

/**
 * 查询（根据ID 批量查询）
 * @param idList 主键ID列表
 * @return list
 */
 public Integer baseSelectBathPrimaryKeys(@Param("list") List<WmsEstimatedArrivalOrderDetailed> idList);


/**
 *修改 （匹配有值的字段）
 * @param entity 主键ID列表
 * @return int
 */
 public Integer baseUpdateByPrimaryKeySelective(@Param("WmsEstimatedArrivalOrderDetailed") WmsEstimatedArrivalOrderDetailed entity);


/**
 * 删除（根据所属预期到货单ID删除）
 * @param ssyqdid 所属预期到货单ID
 * @return int
 */
public Integer baseDeleteBySsyqdid(@Param("ssyqdid") String ssyqdid);

/**
 *修改（根据主键ID修改）
 * @param entity 主键ID列表
 * @return int
 */
 public Integer baseUpdateByPrimaryKey(@Param("WmsEstimatedArrivalOrderDetailed") WmsEstimatedArrivalOrderDetailed entity);
 /**
  *修改 （修改ASN单据明细状态）
  * @param list 主键ID列表
  * @return int
  */
 public Integer baseUpdateByMxZt(@Param("list") List<WmsEstimatedArrivalOrderDetailed> list);

 /**
  *修改 （修改明细状态）
  * @param entity 实体
  * @return int
  */
 public Integer baseUpdateZt(@Param("WmsEstimatedArrivalOrderDetailed") WmsEstimatedArrivalOrderDetailed entity);
 /**
  *查询 （根据预期到货通知单ID查询）
  * @param ssyqdid 预期到货通知单ID
  * @return int
  */
 public List<WmsEstimatedArrivalOrderDetailed> baseSelectBySsyqdid(@Param("ssyqdid") String ssyqdid);
 /**
  *查询ASN码盘信息 （根据预期到货通知单ID查询）
  * @param ssyqdid 预期到货通知单ID
  * @return int
  */
 public List<WmsEstimatedArrivalOrderDetailed> seachASNBySsyqdid(@Param("ssyqdid") String ssyqdid);

 /**
  * 根据货品ID查找对应的质检规则
  * @param hpid
  * @return
  */
 public WmsQualityTesting getQualityTesting(@Param("hpid") String hpid);

 /**
  *根据所属质检规则ID查询质检规则对应的所有明细
  * @param sszjgzid 所属质检规则ID
  * @return
  */
 public WmsQualityTestingDetailed getWmsQualityTestingDetailed(@Param("sszjgzid") String sszjgzid,@Param("yqsl") String yqsl);

 /**
  * 根据所属货主ID获取当前货主拥有的质检单数量
  * @param sshzid
  * @return
  */
 public Integer getWmsQualityTestingCount(@Param("sshzid") String sshzid);

 /**
  * 作废预期到货通知单明细 根据ASN明细的ID
  * @param list
  * @return
  */
 public Integer delAsn(@Param("list") List<String> list);

 /**
  * 收货完成 预期到货通知单明细 根据ASN明细的ID
  * @param list
  * @return
  */
 public Integer fulfilAsnDetailed(@Param("list") List<String> list);


 /**
  * 作废预期到货通知单明细之前查询可以作废的IDS
  * @param list
  * @return
  */
 public List<String> delAsnSearch(@Param("list") List<String> list);

 /**
  * 收货完成 预期到货通知单明细之前查询可以收货完成的IDS
  * @param list
  * @return
  */
 public List<String> fulfilAsnSearch(@Param("list") List<String> list);


}
